<?php
/* -------------------------------------------------------------------------------------
* 	ID:						$Id: ricardo.php 11 2013-09-21 11:43:11Z phone.mueller@googlemail.com $
* 	Letzter Stand:			$Revision: 11 $
* 	zuletzt geaendert von:	$Author: siekiera $
* 	Datum:					$Date: 2013-09-21 11:43:11 +0000 (Sat, 21 Sep 2013) $
*
* 	SEO:mercari by Siekiera Media
* 	http://www.seo-mercari.de
*
* 	Copyright (c) since 2011 SEO:mercari
* --------------------------------------------------------------------------------------
* 	based on:
* 	(c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
* 	(c) 2002-2003 osCommerce - www.oscommerce.com
* 	(c) 2003     nextcommerce - www.nextcommerce.org
* 	(c) 2005     xt:Commerce - www.xt-commerce.com
*
* 	Released under the GNU General Public License
* ----------------------------------------------------------------------------------- */

defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );

define('MODULE_RICARDO_TEXT_DESCRIPTION', 'Export - Ricardo.ch (; getrennt)<br><b>Format:</b><br>Titel;?;Beschreibung;?;Kat-Code;Kat-Beschreibung;Zustand-Code;Zustand-Beschreibung;Anzahl Bilder;<br>Bild Link;?;?;Startpreis;?;Sofortkaufenpreis;?;Versandcode;Versandart;Zahlungscode;<br>Zahlungsart;Auktionsstart;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?');
define('MODULE_RICARDO_TEXT_TITLE', 'Ricardo.ch - CSV');
define('MODULE_RICARDO_FILE_TITLE' , '<hr noshade>Dateiname');
define('MODULE_RICARDO_FILE_DESC' , 'Geben Sie einen Dateinamen ein, falls die Exportadatei auf dem Server gespeichert werden soll.<br>(Verzeichnis export/)');
define('MODULE_RICARDO_STATUS_DESC','Modulstatus');
define('MODULE_RICARDO_STATUS_TITLE','Status');
define('MODULE_RICARDO_CURRENCY_TITLE','WР Т‘hrung');
define('MODULE_RICARDO_CURRENCY_DESC','Welche WР Т‘hrung soll exportiert werden?');
define('EXPORT_YES','Nur Herunterladen');
define('EXPORT_NO','Auf dem Server Speichern');
define('CURRENCY','<hr noshade><b>WР Т‘hrung:</b>');
define('CURRENCY_DESC','WР Т‘hrung in der Exportdatei');
define('EXPORT','Bitte den Sicherungsprozess AUF KEINEN FALL unterbrechen. Dieser kann einige Minuten in Anspruch nehmen.');
define('EXPORT_TYPE','<hr noshade><b>Speicherart:</b>');
define('EXPORT_STATUS_TYPE','<hr noshade><b>Kundengruppe:</b>');
define('EXPORT_STATUS','Bitte wР Т‘hlen Sie die Kundengruppe, die Basis fРЎРЉr den Exportierten Preis bildet. (Falls Sie keine Kundengruppenpreise haben, wР Т‘hlen Sie <i>Gast</i>):</b>');

class ricardo {
    var $code, $title, $description, $enabled, $db;

    function __construct() {
		global $order, $db;

		$this->code = 'ricardo';
		$this->img = 'images/export/ricardo.gif';
		$this->title = MODULE_RICARDO_TEXT_TITLE;
		$this->description = MODULE_RICARDO_TEXT_DESCRIPTION;
		$this->sort_order = MODULE_RICARDO_SORT_ORDER;
		$this->enabled = ((MODULE_RICARDO_STATUS == 'True') ? true : false);
		$this->db = $db;
    }

    function process($file) {

        @set_time_limit(0);
        require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'class.price.php');
        $price = new price($_POST['currencies'], $_POST['status'], $this->db);

        $schema = '';
        $products =$this->db->db_query("SELECT
												p.products_id,
												pd.products_name,
												pd.products_description,
												p.products_model,
												p.products_image,
												p.products_price,
												p.products_status,
												p.products_shippingtime,
												p.products_discount_allowed,
												p.products_tax_class_id,
												p.products_date_added,
												m.brand_name
											FROM
												" . TABLE_PRODUCTS . " p
												LEFT JOIN
													" . TABLE_BRAND . " m
														ON p.brand_id = m.brand_id
												LEFT JOIN
													" . TABLE_PRODUCTS_DESCRIPTION . " pd
														ON p.products_id = pd.products_id
											AND
												pd.language_id = '".$_SESSION['languages_id']."'
												LEFT JOIN
													" . TABLE_SPECIALS . " s
														ON p.products_id = s.products_id
											WHERE
												p.products_status = 1
											ORDER BY
												p.products_date_added DESC,pd.products_name");


        while(!$products->EOF) {

            $products_price = $price->GetPrice($products->fields['products_id'], false, 1, $products->fields['products_tax_class_id']);


            // remove trash
            $products_description = strip_tags($products->fields['products_description']);
//            $products_description = substr($products_description, 0, 197) . '..';
            $products_description = str_replace(";",", ",$products_description);
            $products_description = str_replace("'",", ",$products_description);
            $products_description = str_replace("\n"," ",$products_description);
            $products_description = str_replace("\r"," ",$products_description);
            $products_description = str_replace("\t"," ",$products_description);
            $products_description = str_replace("\v"," ",$products_description);
            $products_description = str_replace("&quot,"," \"",$products_description);
            $products_description = str_replace("&qout,"," \"",$products_description);

            $schema .=
            /*Titel DE*/               '"' . $products->fields['products_name'] . '";' .
            /*Titel FR*/               '"";' .
            /*Beschreibung DE*/        '"' . $products_description . '";' .
            /*Beschreibung FR*/        '"";' .
            /*KategorieCode*/          '"";' .
            /*KategorieBeschreibung*/  '"";' .
            /*ZustandsCode*/           '"1";' .
            /*ZustandsBeschreibung*/   '"Fabrikneu";' .
            /*Stückzahl*/              '"1";' .
            /*BildLink1*/              '"' . HTTP_CATALOG_SERVER . DIR_WS_CATALOG_THUMBNAIL_IMAGES .$products->fields['products_image'] . '";' .
            /*Bildlink2*/              '"";' .
            /*Bildlink3*/              '"";' .
            /*Startpreis*/             '"' . number_format($products_price,2,'.',''). '";' .
            /*Erhöhungsschritt*/       '"1.00";' .
            /*Sofortkaufenpreis*/      '"' . number_format($products_price,2,'.',''). '";' .
            /*Transportkosten*/        '"";' . // TODO !!
            /*Versandcode*/            '"9";' .
            /*Versandart*/             '"Paket B-Post";'  .
            /*Zahlungscode*/           '"5";' .
            /*Zahlungsart*/            '"Vorauszahlung";' .
            /*Auktionsstart*/          '"";' .
            /*Auktionsdauer*/          '"7.0";' .
            /*Reaktivieren*/           '"0";' .
            /*Top Angebot Homepage*/   '"False";' .
            /*Top Angebot Kategorie*/  '"False";' .
            /*Farbiger Hintergrund*/   '"False";' .
            /*Fetter Text*/            '"False";' .
            /*Bildergallerie*/         '"False";' .
            /*Erinnerung*/             '"False";' .
            /*Minuten vor Ablauf*/     '"60";' .
            /*Artikelnummer*/          '"' . $products->fields['products_model'] . '";' .
            /*Unk1*/                   '"";' .
            /*Unk2*/                   '"";' .
            /*Unk3*/                   '"";' .
            /*Garantie Infos DE*/      '"";' .
            /*Garantie Infos FR*/      '"";' .
            /*Zahlungsinfos DE*/       '"";' .
            /*Zahlungsinfos FR*/       '"";' .
            /*Lieferinfos DE*/         '"' . get_shipping_status_name($products->fields['products_shippingtime']). '";' .
            /*Lieferinfos FR*/         '"";' .
            /*Moneybookers*/           '"False";' .
            /*Treuhand*/               '"False";' .
            /*RicardoTrans*/           '"False";' .
            /*Unk4*/                   '""' . "\n";

            $products->MoveNext();
        }
        // create File
          $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+");
          fputs($fp, $schema);
          fclose($fp);


      switch ($_POST['export']) {
        case 'yes':
            // send File to Browser
            $extension = substr($file, -3);
            $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file,"rb");
            $buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/' . $file));
            fclose($fp);
            header('Content-type: application/x-octet-stream');
            header('Content-disposition: attachment; filename=' . $file);
            echo $buffer;
            exit;

        break;
        }
    }

    function display() {

    	$customers_statuses_array = get_customers_statuses();

    	$curr='';
		$currencies = $this->db->db_query("SELECT code FROM ".TABLE_CURRENCIES);
	    while(!$currencies->EOF) {
	    	$curr.=draw_radio_field('currencies', $currencies_data->fields['code'],true).$currencies_data->fields['code'].'<br />';
	    	$currencies->MoveNext();
	    }
    	return array('text' =>  EXPORT_STATUS_TYPE.'<br>'.
	                          	EXPORT_STATUS.'<br>'.
	                          	draw_pull_down_menu('status',$customers_statuses_array, '1').'<br>'.
	                            CURRENCY.'<br>'.
	                            CURRENCY_DESC.'<br>'.
	                            $curr.
	                            EXPORT_TYPE.'<br>'.
	                            EXPORT.'<br>'.
	                          	draw_radio_field('export', 'no',false).EXPORT_NO.'<br>'.
	                            draw_radio_field('export', 'yes',true).EXPORT_YES.'<br>'.
	                            '<br>' . button(BUTTON_EXPORT) .

	                            button_link(BUTTON_CANCEL, href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=ricardo')));

    }

    function check() {
		if (!isset($this->_check)) {
			$check = $this->db->db_query("SELECT configuration_value from " . TABLE_CONFIGURATION . " WHERE configuration_key = 'MODULE_RICARDO_STATUS'");
			$this->_check = $check->_numOfRows;
		}
		return $this->_check;
    }

    function install() {
		$this->db->db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_RICARDO_FILE', 'ricardo.csv',  '6', '1', '', now())");
		$this->db->db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_RICARDO_STATUS', 'True',  '6', '1', 'cfg_select_option(array(\'True\', \'False\'), ', now())");
	}

    function remove() {
		$this->db->db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
		return array('MODULE_RICARDO_STATUS','MODULE_RICARDO_FILE');
    }
}
?>